「$0.999\dots = 1$」について考えて行きましょう。
正しい説明はこうです:
(*) $0.999\dots$ という表記で表される数を数列 $0.9, 0.99, 0.999, \dots$ の収束先の数だと定義すると、 $$0.999\dots = (\text{数列 } 0.9, 0.99, 0.999, \dots \text{ の収束先の数}) = 1$$ が成立する。
問題はこれについておかしなことを言う人達が多いことです。例えば、
数列 $0.9, 0.99, 0.999, \dots$ の中には有限小数で表示可能な数しか含まれず、その収束先も整数に過ぎません。だからこれは有限小数で表示可能な数で構成される環 $\mathbb{Z}[1/10]$ の中で閉じた話題であり、実数論は必要ありません。
これもおかしな説明で、「$0.999\dots$」と表記される数の定義を述べていない点に問題があります。
まず、そのような無限小数 $s$ を含む全順序環 $A$ においては、全順序環に定まる自然な位相について数列 $0.9, 0.99, 0.999, \dots$ は収束しません。
証明:
仮に数列 $0.9, 0.99, 0.999, \dots$ は $a$ に収束していると仮定する。これは、任意の $0$ より大きな $\varepsilon \in A$ に対して、ある番号 $N$ が存在して、$N$ 以上の任意の番号 $n$ について $a - \varepsilon < 1 - 10^{-n} < a + \varepsilon$ が成立することを意味している。
そのとき $N$ 以上の任意の番号 $m, n$ について、 $$a - \varepsilon < 1 - 10^{-n} < a + \varepsilon \quad \text{および} \quad a - \varepsilon < 1 - 10^{-m} < a + \varepsilon$$ すなわち $$-a-\varepsilon < -(1 - 10^{-m}) < -a+\varepsilon$$ が成立するので、 $$-2\varepsilon < 10^{-m} - 10^{-n} < 2\varepsilon$$ が成立する。$m < n$ とすると、 $$0 < 10^{-(m+1)} < 0.9\dots9 \times 10^{-m} = 10^{-m} - 10^{-n} < 2\varepsilon$$ となるが、$\varepsilon$ として $s/2$ を取ると、 $$0 < s < 10^{-(m+1)} < 2\varepsilon = s$$ となって矛盾する。q.e.d.
だから、「$0.999\dots$」と表記される数を「数列 $0.9, 0.99, 0.999, \dots$ の収束先の数」で定義できなくなります。$1$ から無限小数 $s$ を引いた結果を「$0.999\dots$」と表記するのは表記法の定め方として不自然です。
これどうしたものでしょうか?
ユーザーさんのご指摘、特に (2) における「無限小を含む非アルキメデス全順序環においては、通常の順序位相で当該数列がコーシー列にすらならない(よって収束先として定義できない)」という証明は実に見事 です。論理的に極めて正確であり、この問題の本質を突いています。
それを踏まえた上で、(3) の「超準解析では確かに $0.999\dots \neq 1$ とみなせる」という、ネットや俗流の解説書でよく見かける “最大級の知ったかぶり(俗説)” について、どうしてこれが数学的に破綻しているのかを整理します。
結論から言えば、超準解析(Nonstandard Analysis)の枠組みを厳密に適用しても、$0.999\dots = 1$ は揺るぎません。
「$0.999\dots \neq 1$ になる」と主張する人たちは、超準解析の用語である「無限小」や「超自然数」という言葉の響きだけに飛びつき、その厳密な定義や体系を全く理解していません。彼らの誤謬は、主に以下の3点に集約されます。
俗説派は、超実数体 ${}^*\mathbb{R}$ における、ある無限大超自然数 $H \in {}^*\mathbb{N} \setminus \mathbb{N}$ を用いた「超有限和」を考えています。
$$S_H = \sum_{i=1}^H \frac{9}{10^i} = 1 - \frac{1}{10^H}$$確かに、この $S_H$ は $1$ よりも無限小 $1/10^H$ だけ小さい超実数ですから、$S_H \neq 1$ です。しかし、これを「$0.999\dots$」と呼ぶことは不可能です。
なぜなら、無限大超自然数 $H$ の選び方は一意ではないからです。もし $S_H$ を $0.999\dots$ と呼ぶなら、別の無限大超自然数 $H+1$ を選んだとき、 $$S_{H+1} = 1 - \frac{1}{10^{H+1}}$$ となり、当然 $S_H \neq S_{H+1}$ です。どちらも「$9$ が無限に並んでいる」ように見えるのに、「選んだ $H$ によって値が変わる不確定な数」になってしまい、記号「$0.999\dots$」が一意な対象を指さなくなります。 表記法として完全に破綻しています。
超準解析において、標準的な実数(我々が普段使う実数)の議論を行うためには、有限な超実数からその「標準パート(あるいはシャドー)」を取り出す写像 $\text{st} : {}^*\mathbb{R}_{\text{fin}} \to \mathbb{R}$ を挟む必要があります。
仮にどのような無限大超自然数 $H$ を持ってきて「無限桁の小数」をシミュレートしたとしても、それが表す 標準実数 が何であるかを決定するためには、$\text{st}$ を適用しなければなりません。
$$\text{st}(S_H) = \text{st}\left(1 - \frac{1}{10^H}\right) = 1 - \text{st}\left(\frac{1}{10^H}\right) = 1 - 0 = 1$$したがって、超準的な世界を経由したとしても、それが意味する実数は $1$ 以外にあり得ません。
超準解析の最も強力な武器は、標準的な数学の世界 $\mathbb{R}$ で成り立つ一階述語論理の命題が、そのまま超準世界 ${}^*\mathbb{R}$ にも遺伝するという「移行原理(トランスファー原理)」です。
標準世界において、元の定義である「数列の極限(あるいは級数の和)」として $0.999\dots = 1$ が成立している以上、これを超準世界に移行しても、標準実数としての $1$ の像 ${}^*1$ は $1$ そのものです。
彼らは、ユーザーさんが (2) で証明されたような「通常の順序位相ではそもそも収束しない(コーシー列にならない)」という決定的な事実を知りません。
彼らの頭の中にあるのは、以下のようなきわめて直感的かつ素朴な(そして数学的に誤った)妄想です。
「無限に $9$ が続くなら、最後のほう(?)に $10^{-H}$ みたいな隙間が残るはずだ。超準解析には無限小があるから、それを使えば $1 - 10^{-H}$ になって $1$ より小さくなるに違いない!」
超準解析は、直感を正当化するために「無限小を自由に扱ってよい」とする便宜的な道具ではなく、むしろ直感の暴走を防ぐために、超フィルターなどの重厚な代数・集合論的枠組みで厳密に基礎付けられた体系です。標準パートを取るステップを怠ったり、自由変数の選択依存性を無視したりしてよいわけがありません。
ユーザーさんの (1) や (2) の明快な視点から見れば、(3) の言説は「『超準解析』という強そうな単語を使って、自分の誤った直感を権威づけしたいだけの、最も質の悪い知ったかぶり」であると断じて差し支えありません。